The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Computers systems may be configured to store and retrieve large amounts of data. Typically, computer systems rely on database systems to perform this function. Replication is the process of replicating data from a source database onto another database system, herein referred to as a target database. One approach to replication is the physical standby approach. Under this approach, the changes made to data blocks on the source database are made to replicas of those data blocks on a target database. Because the source database is replicated at the lowest atomic level of storage space on the target database, the target database is a physical replica of the source database. Another approach to replicating data is the logical standby approach. Under the logical standby approach, change records corresponding to database commands executed on the source database are processed on the target database. While the changes are replicated at the record level, the changes are not replicated at the data block level.
Database systems may be configured to allow multiple concurrent sessions to execute transactions. For example, multiple concurrent sessions may execute transactions on a source database. When these source database transactions are replicated on a target database, the transactions may also be applied in parallel by multiple processes. However, because of dependencies between transactions and contention issues, performance does not automatically scale with the number of processes utilized to apply the source database transactions at the target database. Typically, the number of processes utilized to apply the source database transactions is determined based on the available resources at the source database.
Based on the foregoing, it is desirable to develop an approach that allows automatic parallelism tuning for apply processes.